package com.cms.jy.draft.util;

import com.cms.jy.draft.entity.*;

/**
 * 快捷方式工具类
 * 为常用配置元素提供便捷操作方法
 */
public class DraftShortcutUtil {
    
    /**
     * 创建带动画的文字
     * @param content 文字内容
     * @param inAnimation 入场动画
     * @param outAnimation 出场动画
     * @return Text 文字对象
     */
    public static Text createTextWithAnimation(String content, Animation inAnimation, Animation outAnimation) {
        Text text = new Text();
        text.setContent(content);
        
        TextAnimation textAnimation = new TextAnimation();
        textAnimation.setInAnimation(inAnimation);
        textAnimation.setOutAnimation(outAnimation);
        text.setAnimations(textAnimation);
        
        return text;
    }
    
    /**
     * 创建带特效的视频
     * @param videoPath 视频路径
     * @param effectName 特效名称
     * @return Video 视频对象
     */
    public static Video createVideoWithEffect(String videoPath, String effectName) {
        Video video = new Video();
        video.setPath(videoPath);
        
        // 可以进一步扩展以添加特效信息
        return video;
    }
    
    /**
     * 创建带淡入淡出效果的音频
     * @param audioPath 音频路径
     * @param fadeInDuration 淡入持续时间（微秒）
     * @param fadeOutDuration 淡出持续时间（微秒）
     * @return Audio 音频对象
     */
    public static Audio createAudioWithFade(String audioPath, long fadeInDuration, long fadeOutDuration) {
        Audio audio = new Audio();
        audio.setPath(audioPath);
        
        AudioFadeEffect fadeEffect = new AudioFadeEffect();
        fadeEffect.setFadeInDuration(fadeInDuration);
        fadeEffect.setFadeOutDuration(fadeOutDuration);
        audio.setFadeEffect(fadeEffect);
        
        return audio;
    }
    
    /**
     * 创建转场效果
     * @param transitionName 转场名称
     * @param duration 持续时间（微秒）
     * @return Transition 转场对象
     */
    public static Transition createTransitionWithEffect(String transitionName, long duration) {
        Transition transition = new Transition();
        transition.setName(transitionName);
        transition.setDuration(duration);
        transition.setIs_overlap(true); // 默认设置为重叠
        
        return transition;
    }
    
    /**
     * 为文字应用入场动画
     * @param text 文字对象
     * @param animationName 动画名称
     * @return Animation 动画对象
     */
    public static Animation applyTextInAnimation(Text text, String animationName) {
        Animation animation = new Animation();
        animation.setName(animationName);
        animation.setType("in"); // 入场动画
        animation.setCategory_name("入场");
        
        if (text.getAnimations() == null) {
            text.setAnimations(new TextAnimation());
        }
        text.getAnimations().setInAnimation(animation);
        
        return animation;
    }
    
    /**
     * 为文字应用出场动画
     * @param text 文字对象
     * @param animationName 动画名称
     * @return Animation 动画对象
     */
    public static Animation applyTextOutAnimation(Text text, String animationName) {
        Animation animation = new Animation();
        animation.setName(animationName);
        animation.setType("out"); // 出场动画
        animation.setCategory_name("出场");
        
        if (text.getAnimations() == null) {
            text.setAnimations(new TextAnimation());
        }
        text.getAnimations().setOutAnimation(animation);
        
        return animation;
    }
}